package com.bosssoft.trainee.nontax.service;

import com.bosssoft.trainee.nontax.entity.dto.PermissionDTO;
import com.bosssoft.trainee.nontax.entity.po.PermissionPO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bosssoft.trainee.nontax.entity.vo.RolePermissionVO;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author sct
 * @since 2022-06-15
 */
public interface PermissionService extends IService<PermissionPO> {
    /**
     * 根据用户ID查询权限列表
     * @param userId
     * @return
     */
    List<PermissionPO> findPermissionListByUserId(Long userId);

    /**
     * 查询菜单列表
     * @return
     */
    List<PermissionDTO> findPermissionList(PermissionDTO permissionDTO);

    /**
     * 查询上级菜单列表
     * @return
     */
    List<PermissionDTO> findParentPermissionList();

    /**
     * 检查菜单是否有子菜单
     * @param id
     * @return
     */
    boolean hasChildrenOfPermission(Long id);

    /**
     * 查询分配权限树列表
     * @param userId
     * @param roleId
     * @return
     */
    RolePermissionVO findPermissionTree(Long userId, Long roleId);
}
